package com.genius.core.manager;

import java.util.List;

import com.genius.model.Batch;
import com.genius.model.Student;
import com.genius.model.StudentLevel;
import com.genius.model.StudentPayment;
import com.genius.model.Teacher;

public interface StudentManager {
	
    void createStudent(Student student);
    
    List searchStudent(String firstName, String lastName);
    
    void addStudentPayment(StudentPayment studentPayment);
    
    Student getStudent(String studentId);
    
    Batch getBatch(String batchId);
    
    List getStudentPaymentDetails(String studentId);
    
    int ACTIVE = 1;
    int INACTIVE = 0;
    int ALL = -1;
    
    /**
     * Get list of active batches
     * @return
     */
    List getBatchList(int active);
    
    /**
     * Add student to batches
     * @param batchId
     * @param studentIds
     */
    void addStudentToBatch(String batchId, List studentIds);
    
    /**
     * gets the list of student level details
     * @param studentId
     * @return
     */
    List getStudentLevelDetails(String studentId);
    
    void addBatch(Batch batch);
    
    void changeStudentLevel(List studentIds, StudentLevel level);
    
    void addTeacher(Teacher batch);
    List getTeacherList();
    
    
}
